/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.general.beans;

import configuraciones.KeyMenu;
import java.util.List;
import org.cip.esymons.general.bc.UserExtMenuDelegate;
import org.cip.esymons.general.be.UserExtMenu;
import org.cip.esymons.general.util.ControladorAbstracto;
import org.richfaces.component.html.HtmlTree;
import org.richfaces.event.NodeSelectedEvent;
import org.richfaces.model.TreeNode;
import org.richfaces.model.TreeNodeImpl;

/**
 *
 * @author ADMINISTRADOR
 */
public class MenuWebController {

    private UserExtMenuDelegate delegadoMenu;
    private UserExtMenu menuWeb, menuSeleccionado;
    private Integer modCodigo;
    private TreeNode nodePrincipal = null;
    private TreeNode currentNode = null;
    private Boolean accede;

    List<UserExtMenu> listaMenu;

    public MenuWebController() {

        delegadoMenu = new UserExtMenuDelegate();
        menuWeb = new UserExtMenu();
        menuSeleccionado = new UserExtMenu();
        accede = false;
                
    }

    public Boolean getAccede() {
        return accede;
    }

    public void setAccede(Boolean accede) {
        this.accede = accede;
    }

    public UserExtMenu getMenuSeleccionado() {
        return menuSeleccionado;
    }

    public void setMenuSeleccionado(UserExtMenu menuSeleccionado) {
        this.menuSeleccionado = menuSeleccionado;
    }

    public TreeNode getCurrentNode() {
        return currentNode;
    }

    public void setCurrentNode(TreeNode currentNode) {
        this.currentNode = currentNode;
    }

    public TreeNode getNodePrincipal() {
        return nodePrincipal;
    }

    public void setNodePrincipal(TreeNode nodePrincipal) {
        this.nodePrincipal = nodePrincipal;
    }

    public Integer getModCodigo() {
        return modCodigo;
    }

    public void setModCodigo(Integer modCodigo) {
        this.modCodigo = modCodigo;
    }
    
    public UserExtMenuDelegate getDelegadoMenu() {
        return delegadoMenu;
    }

    public void setDelegadoMenu(UserExtMenuDelegate delegadoMenu) {
        this.delegadoMenu = delegadoMenu;
    }

    public UserExtMenu getMenuWeb() {
        return menuWeb;
    }

    public void setMenuWeb(UserExtMenu menuWeb) {
        this.menuWeb = menuWeb;
    }

    public String nuevo(){

        return "nuevoMenu";
    }

    public String editar(){

        return "editarMenu";
    }

    public String retornar(){

        return "regresar";
    }

    public List<UserExtMenu> getlistaMenus(){

        return delegadoMenu.findAll();
    }

    public String remover(){

        delegadoMenu.remove(menuWeb);
        menuWeb = new UserExtMenu();
        return null;
    }

    public String guardarMenu(){

       String rutaPagina;
       rutaPagina = null;
        if(modCodigo == 1){

            rutaPagina = "/colegiatura/faces/"+getMenuWeb().getUemrutaPagina();
            menuWeb.setUemrutaPagina(rutaPagina);
        }
       if(modCodigo == 2){
           rutaPagina = "/evento/faces/"+getMenuWeb().getUemrutaPagina();
           menuWeb.setUemrutaPagina(rutaPagina);
       }
       if(modCodigo == 4){
           rutaPagina = "/tramite/faces/"+getMenuWeb().getUemrutaPagina();
           menuWeb.setUemrutaPagina(rutaPagina);
       } 
       if(modCodigo == 3){
           rutaPagina = "/tesoreria/faces/"+getMenuWeb().getUemrutaPagina();
           menuWeb.setUemrutaPagina(rutaPagina);
       }
       if(modCodigo == 5){
           rutaPagina = "/general/faces/"+getMenuWeb().getUemrutaPagina();
           menuWeb.setUemrutaPagina(rutaPagina);
       }

        delegadoMenu.create(menuWeb);
        menuWeb = new UserExtMenu();
        return "listar";
    }

    public String editarMenu(){

        delegadoMenu.edit(menuWeb);
        menuWeb = new UserExtMenu();
        return "listar";
    }

    public String getInicio() {
        listarAccesos();
        return null;
    }

    public String listarAccesos() {
        
        try {

        UsuarioExternoController ue = (UsuarioExternoController) ControladorAbstracto.getBean("UsuarioExternoController");
        listaMenu = ue.listaMenuWeb;
        } catch (Exception ex) {
            System.out.println("FATAL: " + ex.getMessage());
        }
        return null;
    }

    public void processSelection(NodeSelectedEvent event) {
        try {
            HtmlTree tree = (HtmlTree) event.getComponent();
            currentNode = tree.getModelTreeNode(tree.getRowKey());
            //int codigo = ((KeyMenu) currentNode.getData()).getCodigo();
            Integer codigo = ((KeyMenu) currentNode.getData()).getCodigo();
            menuSeleccionado = delegadoMenu.find(codigo);

            accede = false;
//            for (Menu men : listaMenuAccesos) {
//                if (menuSeleccionado == men) {
//                    System.out.println("ACCESO...!");
//                    accede = true;
//                    System.out.println("valor: " + menuSeleccionado);
//                    System.out.println("ruta: " + menuSeleccionado.getMenrutaPagina());
//                    break;
//                }
//            }
            System.out.println("valor: " + menuSeleccionado);
            System.out.println("ruta: " + menuSeleccionado.getUemrutaPagina());
        } catch (Exception ex) {
            System.out.println("Error" + ex.getMessage());
        }
    }


}
